import {describeCrontab} from "../describe";
import {preNormalize} from "../pre_normize";
import {expect} from "chai";

describe('describe full', () => {


  const testCase = [
    {
      input: '* 1-5/2 2 * *',
      expect: '每月 二号 1点到5点之间每隔2小时 每分钟'
    },
    {
      input: '* 1-5/2 * 2 *',
      expect: '每年 二月 1点到5点之间每隔2小时 每分钟'
    },
    {
      input: '* 1-5/2 1 2 *',
      expect: '每年 二月 一号 1点到5点之间每隔2小时 每分钟'
    }, {
      input: '* 1-5/2 1 2 *',
      expect: '每年 二月 一号 1点到5点之间每隔2小时 每分钟'
    },
    {
      input: '* 1-5/2 1 2 */7',
      expect: '每年 二月 一号(并且是周日) 1点到5点之间每隔2小时 每分钟'
    },
    {
      input: '* 1-5/2 1 2 1-2',
      expect: '每年 二月 一号 或者 二月的周一到周二 1点到5点之间每隔2小时 每分钟'
    },
    {
      input: '1 2 3 4 *',
      expect: '每年 四月 三号 2点 01分'
    },

    // fixme optimization for week description
    // {
    //   input: '1 2 3 4 1,2,*/3',
    //   expect: '每年 四月 三号 或者 四月的周一,周二,周四和周日 2点 01分'
    // }
  ]

  for (const tc of testCase) {
    it(tc.input, () => {
      expect(
        describeCrontab(preNormalize(tc.input)).full
      ).to.equal(
        tc.expect
      )
    })
  }
})
